package com.hemaapp.thyc;

import com.hemaapp.HemaConfig;
import com.hemaapp.MyConfig;
import com.hemaapp.hm_FrameWork.HemaHttpInfomation;
import com.hemaapp.thyc.model.SysInitInfo;


/**
 * 网络请求信息枚举类
 */
public enum MyHttpInformation implements HemaHttpInfomation {
    /**
     * 登录
     */
    CLIENT_LOGIN(HemaConfig.ID_LOGIN, "client_login", "登录", false),
    // 注意登录接口id必须为HemaConfig.ID_LOGIN
    /**
     * 后台服务接口根路径
     */
    SYS_ROOT(0, MyConfig.SYS_ROOT, "后台服务接口根路径", true),
    /**
     * 系统初始化
     */
    INIT(1, "index.php/webservice/index/init", "系统初始化", false),
    /**
     * 验证用户名是否合法
     */
    CLIENT_VERIFY(2, "client_verify", "验证用户名是否合法", false),
    /**
     * 申请随机验证码
     */
    CODE_GET(3, "code_get", "申请随机验证码", false),
    /**
     * 验证随机码
     */
    CODE_VERIFY(4, "code_verify", "验证随机码", false),
    /**
     * 用户注册
     */
    CLIENT_ADD(5, "client_add", "用户注册", false),
    /**
     * 上传文件（图片，音频，视频）
     */
    FILE_UPLOAD(6, "file_upload", "上传文件（图片，音频，视频）", false),
    /**
     * 重设密码
     */
    PASSWORD_RESET(7, "password_reset", "重设密码", false),
    /**
     * 退出登录
     */
    CLIENT_LOGINOUT(8, "client_loginout", "退出登录", false),
    /**
     * 获取支付宝交易签名串
     */
    ALIPAY(9, "OnlinePay/Alipay/alipaysign_get.php", "获取支付宝交易签名串", false),
    /**
     * 获取银联交易签名串
     */
    UNIONPAY(10, "OnlinePay/Unionpay/unionpay_get.php", "获取银联交易签名串", false),
    /**
     * 获取微信交易签名串接口
     */
    WEIXINPAY_GET(13, "OnlinePay/Weixinpay/weixinpay_get.php", "获取微信交易签名串接口", false),
    /**
     * 维修人员列表接口
     */
    SERVICER_LIST(14, "servicer_list", "维修人员列表接口", false),
    /**
     * 故障服务标签列表（分页返回全部）接口
     */
    SERVICE_TYPE_LIST(15, "service_type_list", "故障服务标签列表（分页返回全部）接口", false),
    /**
     * 发布需求/预约接口
     */
    TRADE_ADD(15, "trade_add", "发布需求/预约接口", false),
    /**
     * 绑定银行卡接口
     */
    BANK_SAVE(16, "bank_save", "绑定银行卡接口", false),
    /**
     * 轮播广告图列表（分页形式，返回全部）接口
     */
    AD_LIST(17, "ad_list", "轮播广告图列表（分页形式，返回全部）接口", false),
    /**
     * 电气图纸设计案例列表接口
     */
    DRAWING_CASE_LIST(18, "drawing_case_list", "电气图纸设计案例列表接口", false),
    /**
     * 电气图纸设计规范列表接口
     */
    DRAWING_NORMAL_LIST(19, "drawing_normal_list", "电气图纸设计规范列表接口", false),
    /**
     * 评论列表接口
     */
    REPLY_LIST(20, "reply_list", "评论列表接口", false),
    /**
     * 电气图纸设计规范详情接口
     */
    DRAWING_NORMAL_GET(21, "drawing_normal_get", "电气图纸设计规范详情接口", false),
    /**
     * 添加评论接口
     */
    REPLY_ADD(22, "reply_add", "添加评论接口", false),
    /**
     * 添加评论接口
     */
    SERVICE_APPLY_ADD(22, "service_apply_add", "添加评论接口", false),
    /**
     * 获取用户个人资料接口
     */
    CLIENT_GET(23, "client_get", "获取用户个人资料接口", false),
    /**
     * 财务记录接口
     */
    FINANCE_LIST(24, "finance_list", "财务记录接口", false),
    /**
     * 订单列表接口
     */
    TRADE_LIST(25, "trade_list", "订单列表接口", false),
    /**
     * 供货商列表接口
     */
    SUPPLIER_LIST(26, "supplier_list", "供货商列表接口", false),
    /**
     * 供货商商品列表接口
     */
    SUPPLIER_GOODS_LIST(27, "supplier_goods_list", "供货商商品列表接口", false),
    /**
     * 供货商商品分类列表接口
     */
    SUPPLIER_GOODS_TYPE_LIST(28, "supplier_goods_type_list", "供货商商品分类列表接口", false),
    /**
     * 设施维保或试验列表接口
     */
    MACHINE_PROTECTOR_TEST_LIST(29, "machine_protectortest_list", "设施维保或试验列表接口", false),
    /**
     * 获取消息通知列表接口
     */
    NOTICE_LIST(30, "notice_list", "获取消息通知列表接口", false),
    /**
     * 保存用户通知操作接口
     */
    NOTICE_SAVE_OPERATE(31, "notice_saveoperate", "保存用户通知操作接口", false),
    /**
     * 企业列表接口
     */
    COMPANY_LIST(32, "company_list", "企业列表接口", false),
    /**
     * 企业案例列表接口
     */
    COMPANY_CASE_LIST(33, "company_case_list", "企业案例列表接口", false),
    /**
     * 保存订单操作接口
     */
    TRADE_SAVE_OPERATE(34, "trade_saveoperate", "保存订单操作接口", false),
    /**
     * 订单详情接口
     */
    TRADE_GET(35, "trade_get", "订单详情接口", false),
    /**
     * 保存当前用户坐标接口
     */
    POSITION_SAVE(36, "position_save", "保存当前用户坐标接口", false),
    /**
     * 用户优惠券列表接口
     */
    COUPON_LIST(37, "coupon_list", "用户优惠券列表接口", false),
    /**
     * 余额支付接口
     */
    FEE_ACCOUNT_REMOVE(38, "feeaccount_remove", "余额支付接口", false),
    /**
     * 保存用户资料接口
     */
    CLIENT_SAVE(39, "client_save", "保存用户资料接口", false),
    /**
     * 维修身份用户保存个人资料接口
     */
    SERVICER_SAVE(40, "servicer_save", "维修身份用户保存个人资料接口", false),
    /**
     * 修改并保存密码接口
     */
    PASSWORD_SAVE(41, "password_save", "修改并保存密码接口", false),
    /**
     * 保存帖子操作接口
     */
    BLOG_SAVE_OPERATE(42, "blog_saveoperate", "保存帖子操作接口", false),
    /**
     * 预约案例、施工定制企业接口
     */
    APPOINT_ADD(43, "appoint_add", "预约案例、施工定制企业接口", false),
    /**
     * 供货商详情接口
     */
    SUPPLIER_GET(44, "supplier_get", "供货商详情接口", false),
    /**
     * 企业详情接口
     */
    COMPANY_GET(45, "company_get", "企业详情接口", false),;

    private int id;// 对应NetTask的id
    private String urlPath;// 请求地址
    private String description;// 请求描述
    private boolean isRootPath;// 是否是根路径

    MyHttpInformation(int id, String urlPath, String description,
                      boolean isRootPath) {
        this.id = id;
        this.urlPath = urlPath;
        this.description = description;
        this.isRootPath = isRootPath;
    }

    @Override
    public int getId() {
        return id;
    }

    @Override
    public String getUrlPath() {
        if (isRootPath)
            return urlPath;

        String path = SYS_ROOT.urlPath + urlPath;

        if (this.equals(INIT))
            return path;

        MyApplication application = MyApplication.getInstance();
        SysInitInfo info = application.getSysInitInfo();
        path = info.getSys_web_service() + urlPath;

        if (this.equals(ALIPAY))
            path = info.getSys_plugins() + urlPath;

        if (this.equals(UNIONPAY))
            path = info.getSys_plugins() + urlPath;

        if (this.equals(WEIXINPAY_GET))
            path = info.getSys_plugins() + urlPath;

        return path;
    }

    @Override
    public String getDescription() {
        return description;
    }

    @Override
    public boolean isRootPath() {
        return isRootPath;
    }

}
